

/**
 * @author Abdelilah, Souhaila
 * @version 1.0
 * @created 28-abr-2013 15:44:24
 */
package GestorJornada;

import ConexionBD.ConexionBD;
import java.sql.ResultSet;
import java.sql.SQLException;


public class JornadaBD {

	private static JornadaBD Instancia=null;

	public void JornadaBD(){

	}

	/**
	 * 
	 * @param Jornada
	 */
	public Jornada addJornada(Jornada jornada){
            
            Jornada result;
            String consulta="INSERT INTO Jornada(Num_jornada, idCompeticion)" +
                "VALUES (" +
                jornada.getNumJornada() +
                ", " + jornada.getIdCompeticion() +
                ");";
        
            try {
                ConexionBD.getInstancia().conectar();
                ResultSet salidaBD = ConexionBD.getInstancia().actualizar(consulta);
                salidaBD.first();
                // Establece el valor de IdJornada generado por la BD en el objeto jornada
                jornada.setIdJornada(Integer.parseInt(salidaBD.getString(1)));
                result = jornada;
                ConexionBD.getInstancia().desconectar();
            } catch (SQLException ex) {
                result = null;
            }
            return result;
	}

	/**
	 * 
	 * @param Jornada
	 */
	public boolean deleteJornada(Jornada jorn){
            
            String consulta;
            Boolean salida = true;
            
            consulta = "DELETE FROM Jornada WHERE IdJornada=" + jorn.getIdJornada().toString() +
                    ";";
            
            try {
                ConexionBD.getInstancia().conectar();
                ResultSet salidaBD = ConexionBD.getInstancia().actualizar(consulta);
                ConexionBD.getInstancia().desconectar();
            } catch (SQLException ex) {
                salida= false;
            }
		return salida;
	}

	static public JornadaBD getInstancia(){
            if (Instancia == null){
                Instancia = new JornadaBD();
            }
            return Instancia;
        }

	/**
	 * 
	 * @param IdCompeticon
	 * @param NomJornada
	 */
	public Jornada[] getJornada(Integer IdCompeticion, Integer NumJornada){
            String consulta;
            
            if(NumJornada == -1){
                consulta = "SELECT * FROM Jornada WHERE Jornada.IdCompeticion = " + 
                    IdCompeticion + ";";
            }
            else{
                consulta="SELECT * FROM Jornada WHERE Jornada.IdCompeticion = " + 
                    IdCompeticion + " AND Jornada.Num_jornada = " + NumJornada + 
                    ";";
            }
            
            Jornada[] listajorn = null;
            try {
                ConexionBD.getInstancia().conectar();
                ResultSet tabla = ConexionBD.getInstancia().consultar(consulta);

                if (tabla.last()) { // Si devuelve false es que la búsqueda es vacía
                    int nfilas = tabla.getRow();
                    tabla.beforeFirst(); // Volvemos al principio
                    listajorn = new Jornada[nfilas];

                    for (int i = 0; i < nfilas; i++){    
                        tabla.next();

                        listajorn[i] = new Jornada(tabla.getInt("IdCompeticion"), tabla.getInt("Num_jornada"));
                        listajorn[i].setIdJornada(tabla.getInt("IdJornada"));
                    }
                }
                ConexionBD.getInstancia().desconectar();
            } catch (SQLException ex) {
                return null;
            }
            return listajorn;
	}

	/**
	 * 
	 * @param Jornada
	 */
	public boolean updateJornada(Jornada jornada){
            Boolean salida = true;

            String consulta = "UPDATE Jornada SET Num_jornada = " + jornada.getNumJornada();
                consulta += " WHERE idJornada = " + jornada.getIdJornada().toString() + ";";
        
            try {
                ConexionBD.getInstancia().conectar();
                ConexionBD.getInstancia().actualizar(consulta);
                ConexionBD.getInstancia().desconectar();
            } catch (SQLException ex) {
                System.out.println(ex);
                salida = false;
            }
            return salida;
	}

}